<?php
require_once 'ApibaseController.php';

/**
 * 物件お問い合わせ入力(送信)<br />
 *
 * @package apamanshop
 * @author　
 * @copyright　
 */
class Inquiry_ApibukkenController extends Inquiry_ApibaseController
{
	//TODO:とりあえず構成とか考えずにASPもとねたにベタでガリガリ書いているので、将来的には整理する予定です。

	//====================定数====================
	/** キャンペーン区切り文字 */
	const DELIM_CAMPAIGN = ";";
	/** お宝区切り文字 */
	const DELIM_OTAKARA = ",";

	/** TEL希望時間(定数) */
	private $mc_arrNeedTimeKbn;

	//====================グローバル変数===================

	//=====基本引継ぎ情報=====
	//ｻｲﾄ基本項目
	/** モバイル区分 */
	private $m_isMobile;
	/** 利用ｻｲﾄ区分 */
	private $m_strUseKbn;
	/** 利用ｻｲﾄ区分(mobile) */
	private $m_strMobileKbn;

	//=====画面からのパラメータ=====
	/** 名前(姓) */
	private $m_strNameSei;
	/** 名前(名) */
	private $m_strNameMei;
	// 20141211 S_Add
	/** 名前(セイ) */
	private $m_strNameSeiKana;
	/** 名前(メイ) */
	private $m_strNameMeiKana;
	// 20141211 E_Add
	/** メールアドレス */
	private $m_strMail;
	/** Tel */
	private $m_strTel;
	/** 希望連絡時間 */
	private $m_strNeedTimeKbn;
	/** Fax */
	private $m_strFax;

	//ご要望
	/** ご要望(クレジットカードで家賃を支払いたい) */
	private $m_strInquiry5;

	//問い合わせ内容チェックボックス
	/** 問い合わせ内容チェックボックス(物件の詳細をもっと知りたい) */
	private $m_strInquiry1;
	/** 問い合わせ内容チェックボックス(物件を見に行きたい) */
	private $m_strInquiry2;
	/** 問い合わせ内容チェックボックス(物件が空いているかを確認したい) */
	private $m_strInquiry3;
	/** 問い合わせ内容チェックボックス(条件に合う他の物件も紹介して欲しい) */
	private $m_strInquiry4;
	/** 問合わせ内容(自由記入) */
	private $m_strComment;

	//=====プログラム内で作成=====
	/** 連絡手段名称 */
	private $m_strCntctWayStr;

	/** 物件カウンタ(店舗単位) */
	private $m_intCntB;

	/** ユーザ本文組込用 */
	private $m_strBufUser;
	/** 店舗(本部)本文組込用 */
	private $m_strBufShop;

	//DBから取得
	/** 店舗メール */
	private $m_strShopMail;
	/** 店舗名称 */
	private $m_strShopNm;
	/** 店舗TEL */
	private $m_strShopTel;

	/** キャンペーン対象文言 */
	private $m_strCampaignTaishoHead;
	/** 訳あり物件文言 */
	private $m_strPrHead;

	/** Webcalling接続番号 */
	private $m_strWebcallingNo;

	/** あげちゃいますキャンペーン(全て)(Key:キャンペーンコード  Value:キャンペーン情報) */
	private $m_arrCampaignAgechauAll;
	/** あげちゃいますキャンペーン(Key:キャンペーンコード  Value:キャンペーン情報) */
	private $m_arrCampaignAgechau;
	/** あげちゃいますキャンペーンお宝(Key:キャンペーンコード  Value:お宝情報リスト) */
	private $m_arrCampaignAgechauTakara;
	/** 部屋付きキャンペーン（反響カウント用） */
	private $m_arrCampaignHeya;
	/** 部屋付きキャンペーン（メールタイトル用）(Key:キャンペーンコード  Value:キャンペーン情報) */
	private $m_arrCampaignHeyaList;

	/** 問い合わせID */
	private $m_strToiawaseId;

	//=====結果用=====
	/** W03BUKKEN_ACCESS_LOG 登録件数 */
	private $m_insW03BukkenAccessLogCnt;
	/** W21PAGE_VIEW_LOG 登録件数 */
	private $m_insW21PageViewLogCnt;
	/** W75KODAWARI_COUNT 更新件数 */
	private $m_updW75KodawariCountCnt;
	/** W25TOIAWASE_USER_LOG 登録件数 */
	private $m_insW25ToiawaseUserLogCnt;
	/** W25TOIAWASE_LOG 登録件数 */
	private $m_insW25ToiawaseLogCnt;
	/** W26TOIAWASE_BUKKEN 登録件数 */
	private $m_insW26ToiawaseBukkenCnt;
	/** T101TARGET_COUNT 更新件数 */
	private $m_updT101TargetCountCnt;
	/** W75LETTERS_CAMPAIGN 登録/更新件数 */
	private $m_insupdW75LettersCampaignCnt;
	/** W76APPLY_CAMPAIGN 登録件数 */
	private $m_insW76ApplyCampaignCnt;
	/** W25CAMPAIGN_DOWNLOAD_MNG 登録件数 */
	private $m_insW25CampaignDownloadMngCnt;

	/**
	 * インデックス表示
	 */
	public function indexAction()
	{
		try {
			//=====結果件数初期化=====
			$this->m_insW03BukkenAccessLogCnt = 0;
			$this->m_insW21PageViewLogCnt = 0;
			$this->m_updW75KodawariCountCnt = 0;
			$this->m_insW25ToiawaseUserLogCnt = 0;
			$this->m_insW25ToiawaseLogCnt = 0;
			$this->m_insW26ToiawaseBukkenCnt = 0;
			$this->m_updT101TargetCountCnt = 0;
			$this->m_insupdW75LettersCampaignCnt = 0;
			$this->m_insW76ApplyCampaignCnt = 0;
			$this->m_insW25CampaignDownloadMngCnt = 0;

			//=====メイン処理=====
			$this->InquiryMain();

			//=====結果件数書込み=====
			$resDetail
			= array(
			  array("table_name" => "W03BUKKEN_ACCESS_LOG", "count" => $this->m_insW03BukkenAccessLogCnt)
			, array("table_name" => "W21PAGE_VIEW_LOG",     "count" => $this->m_insW21PageViewLogCnt)
			, array("table_name" => "W75KODAWARI_COUNT",    "count" => $this->m_updW75KodawariCountCnt)
			, array("table_name" => "W25TOIAWASE_USER_LOG", "count" => $this->m_insW25ToiawaseUserLogCnt)
			, array("table_name" => "W25TOIAWASE_LOG",      "count" => $this->m_insW25ToiawaseLogCnt)
			, array("table_name" => "W26TOIAWASE_BUKKEN",   "count" => $this->m_insW26ToiawaseBukkenCnt)
			, array("table_name" => "T101TARGET_COUNT",     "count" => $this->m_updT101TargetCountCnt)
			, array("table_name" => "W75LETTERS_CAMPAIGN",  "count" => $this->m_insupdW75LettersCampaignCnt)
			, array("table_name" => "W76APPLY_CAMPAIGN",    "count" => $this->m_insW76ApplyCampaignCnt)
			);

			$apiResult = array("result" => 1, "res_detail" => $resDetail);

			$this->_data["api_result"] = $apiResult;

		} catch (Exception $e) {
			$apiResult = array("result" => 1, "message" => $e->getMessage());
			$this->_data["api_result"] = $apiResult;
		}

		$this->_api_data = $this->_data;

		$this->display();
	}

	/**
	 * 指定された物件情報がWebCallingを使用するか判定
	 *
	 * @param array $rowBukkenInfo 物件情報
	 * @return boolean WebCallingを使用するか (true:使用する  false:使用しない)
	 */
	private function isWebCalling($rowBukkenInfo)
	{
		$result = false;

		if (strcmp($rowBukkenInfo["M93_USE_KBN"], "1") == 0)
		{
			//利用区分が1（使用）である
			if (!Apm_Otheritems::IsNullOrEmpty($this->ConvNull($rowBukkenInfo["M93_START_DATE"], "")))
			{
				//利用開始日が設定されている
				if ($rowBukkenInfo["M93_START_DATE"] < time())
				{
					//利用開始されている
					if (!Apm_Otheritems::IsNullOrEmpty($this->ConvNull($rowBukkenInfo["M93_DEL_DATE"], "")))
					{
						//解約日が設定されている
						If ($rowBukkenInfo["M93_DEL_DATE"] > time())
						{
							//解約日を過ぎていない
							$result = true;
						}
					}
					else
					{
						//解約日が設定されていない
						$result = true;
					}
				}
			}
		}
		return $result;
	}

	/**
	 * WebCalling接続番号取得
	 *
	 * @param array $bukkenInfo 物件情報
	 * @param string $subNo 接続番号
	 */
	private function GetWebCallingConnectionNo($rowBukkenInfo, $strSubNo)
	{
		$result;

		//物件詳細デフォルト値設定
		$result = $this->ConvNull($rowBukkenInfo["M93_CONNECTION_NO" & Apm_Config_Inquiry::WEBCALLING_TYPE1], "");

		if (!Apm_Otheritems::IsNullOrEmpty($strSubNo))
		{
			//枝番が設定されている
			if (strcmp($rowBukkenInfo["M93_CONTROL_FLAG" . $strSubNo], "0") == 0)
			{
				//制御フラグが0(未制御)である
				$result = $this->ConvNull($rowBukkenInfo["M93_CONNECTION_NO" . $strSubNo], "");
			}
		}

		return $result;
	}

	/**
	 * こだわり条件使用頻度カウント更新
	 *
	 * @param string $strAreaCd エリアコード
	 * @throws Exception
	 */
	private function UpdKodawariCount($strAreaCd)
	{
		// 取得したこだわり情報リスト
		$kodawariList;
		// パラメータが存在するこだわりリスト
		$kodawariLogList = array();
		//こだわりIDをカンマで区切ったリスト
		$strKodawariList;

		//====パラメータからこだわり条件を抽出====
		// こだわり条件一覧を取得
		$kodawariList = $this->_model->GetKodawari();
		// パラメータに存在するかチェック
		foreach ($kodawariList as $kodawariInfo)
		{
			$strKId = $kodawariInfo["W74_KODAWARI_ID"];

			if (strcmp($this->_params["kodawari" . $strKId], "1") == 0)
			{
				// カウントするこだわりを取得
				$kodawariLogList[] = (string)$strKId;
			}
		}
		if (empty($kodawariLogList)) $kodawariLogList[] = "0";
		$strKodawariList = implode(",", $kodawariLogList);

		//====エリアコードがカンマ区切りで複数来る事を想定====
		$areaList = explode(",", str_replace(" ", "", $strAreaCd));
		if (!is_array($areaList)) $areaList = array();

		//====こだわり条件使用頻度カウントSQL作成====
		//既存通りここでコミットとかする
		$db = $this->_model->getDbConnection();
		$this->_model->startTransaction($db);
		try
		{
			// エリアコード別に登録処理
			foreach ($areaList as $areaCd)
			{
				if (empty($areaCd)) continue;
				$arrInsKodawari = array();
				$arrUpdKodawari = array();
				
				// ログに存在するか確認
				$kodawariLog = $this->_model->GetKodawarCnt($areaCd, $strKodawariList, $db);
				foreach ($kodawariLog as $kodawariInfo)
				{
					$arrUpdKodawari[] = (string)$kodawariInfo['W75_KODAWARI_ID'];	// UPDATE処理を行うこだわり
				}
				$arrInsKodawari = array_diff($kodawariLogList, $arrUpdKodawari);	// INSERT処理を行うこだわり
				
				// INSERT
				foreach ($arrInsKodawari as $kodawariId) {
					if (empty($kodawariId)) continue;
					$this->m_updW75KodawariCountCnt += $this->_model->InsKodawarCnt($areaCd, $kodawariId, $db);
				}
				// UPDATE
				if (!empty($arrUpdKodawari)) {
					$kodawariIds = implode(",", $arrUpdKodawari);
					$this->m_updW75KodawariCountCnt += $this->_model->UpdKodawarCnt($areaCd, $kodawariIds, $db);
				}
			}

			$this->_model->commitTransaction($db);
			__log_debug(__FILE__, __LINE__, __METHOD__, "コミットしました");
			$db->closeConnection();
			$_Session["Counter"] = "1";
		}
		catch (Exception $e)
		{
			$this->_model->rollbackTransaction($db);
			__log_debug(__FILE__, __LINE__, __METHOD__, "ロールバックしました");
			$db->closeConnection();
			throw $e;
		}
	}

	/**
	 * 問い合わせ店舗情報格納処理
	 *
	 * @param connection $db DBｺﾈｸｼｮﾝObj
	 * @param string $strBukkenCd 問合せ対象の物件ID
	 * @param string $strShopCd 問合せ対象の物件の店舗CD
	 * @param string $intLogGenruKbn 表示ﾍﾟｰｼﾞｼﾞｬﾝﾙ区分
	 */
	private function InsInqShopLog($db, $strBukkenCd, $strShopCd, $intLogGenruKbn)
	{
		$result = false;
		$db_params = array();

		if ($this->isLogIns())
		{
			//※既存とはif分の結果の順序逆にしてる

			//共通情報設定
			$db_params['strTenpoCd'] = $strShopCd;
			$db_params['intGFlg'] = $intLogGenruKbn;
			$db_params['intCount'] = 1;

			if (Apm_Otheritems::IsNullOrEmpty($strBukkenCd))
			{
				//問合わせIDが設定されていない場合
				$db_params['intKbn'] = 3;
				$db_params['strHeyaCd'] = "NULL";
			}
			else
			{
				//問合わせIDが設定されている場合
				$db_params['intKbn'] = 2;
				$db_params['strHeyaCd'] = $strBukkenCd;
			}

			//登録実行
			$this->m_insW21PageViewLogCnt += $this->_model->InsRegPageViewLog($db_params, $db);
		}

		$result = true;

		return $result;
	}

	/**
	 * メール送信処理(メイン)
	 * この関数経由で各メールを送信する
	 * @param string $strBukkenCdComma 物件CD(カンマ(,)区切り)
	 * @param string $strShopCd 店舗コード
	 */
	private function SendMailMain($strBukkenCdComma, $strShopCd)
	{

		//AOSユーザフラグ
		$bolAosFlag;

		//=======================================================================================
		// メール送信(ユーザー)

		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strMail))
		{
			//ユーザのメールｱﾄﾞﾚｽが設定されている場合
			//--- メール送信処理(ユーザ) ---
			$this->SendMailUser();
		}
		//=======================================================================================
		// メール送信(店舗)
		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strShopMail))
		{
			$bolAosFlag = $this->isAosShop($strShopCd);
			//--- メール送信処理(店舗) ---
			$this->SendMailShop($strBukkenCdComma, 1, $bolAosFlag, $strShopCd);
			//--- メール送信処理(本部) ---
			$this->SendMailShop($strBukkenCdComma, 2, $bolAosFlag);
		}
		else
		{
			//店舗のメールｱﾄﾞﾚｽが取得できていない場合
			//--- メール送信処理(メールｱﾄﾞﾚｽ未設定時) ---
			$this->SendMailNoMail();
		}
	}

	/**
	 * メール送信処理(ユーザ)
	 *
	 */
	private function SendMailUser()
	{
		//メールﾀｲﾄﾙ
		$strSubject;
		//メール本文
		$strBody;
		//ユーザ情報
		$strUserInfo;
		//メール送信元
		$strMailFrom;
		//メール送信先
		$strMailTo;
		//メールreply-to
		$strMailReplyTo;
		//表示用利用区分
		$strDispUseKbn;

		//アパマン48キャンペーンオリジナルスクリーンセイバーURL用
		$isApaman48Campaign     = false;
		$strApaman48DownloadUrl = "";
		$isExileCampaign     = false;
		$strExileDownloadUrl = "";

		//=======================================================================================
		// メール送信処理

		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strMail))
		{
			//ユーザのメールｱﾄﾞﾚｽが登録されていた場合

			$strMailFrom = Apm_Config_Mail::MAIL_NETWORK;
			$strMailTo = $this->m_strMail;
			$strMailReplyTo = Apm_Config_Mail::MAIL_LATE;

			//--- 利用区分毎の表示 ---
			// 各利用区分で文字列が必要になったら下記の""に追加すること
			switch (strval($this->m_strUseKbn))
			{
				case "0":
					//アパマンショップ
					$strDispUseKbn = "";
					break;
				case "1":
					//地域情報サイト
					$strDispUseKbn = "";
					break;
				case "2":
					//東急リロケーション
					$strDispUseKbn = "";
					break;
				case "3":
					//nifty不動産
					$strDispUseKbn = "＆@nifty不動産";
					break;
				case "4":
					//TAGGY 2013.03.12 Add
					$strDispUseKbn = "＆COSOYO賃貸";
					break;
				default:
					$strDispUseKbn = "";
					break;
			}

			$strSubject = "［アパマンショップ" . $strDispUseKbn . "］物件お問い合わせのご確認";

			//--- ユーザ情報取得処理 ---
			$strUserInfo = $this->GetUserInfo();

			$strBody = "";
			if ($this->m_isMobile == "1") {
				$strBody .= "********************\n";
				$strBody .= "■アパマンショップ" . $strDispUseKbn . "にて物件のお問い合わせを受付けました。\n";
				$strBody .= "********************\n";
			} else {
				$strBody .= "*************************************************************\n";
				$strBody .= "■アパマンショップ" . $strDispUseKbn . "にて物件のお問い合わせを受付けました。\n";
				$strBody .= "*************************************************************\n";
			}
			$strBody .= "\n";
			$strBody .= "アパマンショップ" . $strDispUseKbn . "ホームページをご利用いただき誠にありがとうございます。\n";
			$strBody .= "\n";
			$strBody .= "お問い合わせの物件について、\n";
			$strBody .= "担当のアパマンショップよりご連絡させていただきます。\n";
			$strBody .= "一生懸命対応させていただきますので、宜しくお願い申し上げます。\n";
			$strBody .= "\n";
			$strBody .= $this->m_strNameSei . "　" . $this->m_strNameMei . "様のお問い合わせ内容です。\n";
			$strBody .= "\n";
			if ($this->m_isMobile == "1") {
				$strBody .= "■お問い合わせ内容\n";
			} else {
				$strBody .= "-----------［お問い合わせ内容］------------\n";
				$strBody .= "\n";
			}
			$strBody .= "【受付日】" . $this->GetTimeStringDisp() . "\n";
			$strBody .= $this->m_strBufUser . "\n";

			//あげちゃいますキャンペーンはDBからデータ取得
			foreach ($this->m_arrCampaignAgechauAll as $campaignAll)
			{
			
				if (array_key_exists($campaignAll["M94_CAMPAIGN_CD"], $this->m_arrCampaignAgechau))
				{
					if($campaignAll["M94_CAMPAIGN_CD"] <> "17"){
						$strBody .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　応募する ";
					}
					else{
						$strBody .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　希望する ";
					}
					if (count($this->m_arrCampaignAgechauTakara[$campaignAll["M94_CAMPAIGN_CD"]]) > 0)
					{
						//お宝がある場合はそれも出力する
						foreach ($this->m_arrCampaignAgechauTakara[$campaignAll["M94_CAMPAIGN_CD"]] as $takara)
						{
							if($takara["M94_OTAKARA_NAME"] <> "")
							{
								$strBody .= "(" . $takara["M94_OTAKARA_NAME"] . ")";
							}
						}
						$strBody .= "\n";
					}
					$strBody .= "\n";
				}
				else
				{
					//if($campaignAll["M94_CAMPAIGN_CD"] <> "17"){
					//	$strBody .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　応募しない \n";
					//}
					//else{
					//	$strBody .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　希望しない \n";
					//}
				}

				// アパマン48キャンペーン期間か
				if($campaignAll["M94_CAMPAIGN_CD"] == Apm_Config_Inquiry::AKB_CAMPAIGN_CD)
				{
					$isApaman48Campaign     = true;
					$strApaman48DownloadUrl = $this->_config['apm']['baseurl']. "AKB48/cp/download?id=". $this->m_strToiawaseId. "&key=".$campaignAll["ACCESS_KEY"];
				}
				if($campaignAll["M94_CAMPAIGN_CD"] == Apm_Config_Inquiry::EXILE_CAMPAIGN_CD)
				{
					$isExileCampaign     = true;
					if ($this->m_isMobile == "0") {
						// PC
						$strExileDownloadUrl = $this->_config['apm']['baseurl']. "exile/cp/download?id=". $this->m_strToiawaseId. "&key=".$campaignAll["ACCESS_KEY"];
					}
					else if ($this->m_isMobile == "1") {
						// mobile
						$strExileDownloadUrl = $this->_config['apm']['baseurl']. "mobile/exile/download?id=". $this->m_strToiawaseId. "&key=".$campaignAll["ACCESS_KEY"];
					}
					else {
						// SP
						$strExileDownloadUrl = $this->_config['apm']['baseurl']. "exile/cp/download/sp?id=". $this->m_strToiawaseId. "&kbn=".$this->m_isMobile. "&key=".$campaignAll["ACCESS_KEY"];
					}
				}

			}

			$strBody .= "\n";

			$strBody .= $strUserInfo;

			if ($this->m_isMobile == "1") {
				$strBody .= "■お問い合わせ物件取り扱い店舗\n";
			} else {
				$strBody .= "-----［お問い合わせ物件取り扱い店舗］------\n";
				$strBody .= "\n";
			}
			$strBody .= "<店舗名>アパマンショップ " . $this->m_strShopNm . "\n";

			if (!Apm_Otheritems::IsNullOrEmpty($this->m_strWebcallingNo))
			{
				$strBody .= "　無料電話番号　" . Apm_Config_Shop::FREE_CALLING_NO . "　店舗番号：" . $this->m_strWebcallingNo . "\n";
				$strBody .= "　　※音声案内に従い店舗番号“6桁の数字”を入力してください。\n";
				$strBody .= "　　　（携帯電話・PHSからもお電話できます）\n";
			}

			$strBody .= "<店舗ＴＥＬ> " . $this->m_strShopTel . "\n";
			$strBody .= "<店舗メール> " . $this->m_strShopMail . "\n";
			$strBody .= "\n";

/*
			if ($isApaman48Campaign) {
				$strBody .= "■スクリーンセーバーダウンロード\n";
				$strBody .= "現在、アパマン48キャンペーン中につき、お問合わせいただいた方全員に\n";
				$strBody .= "もれなくアパマン48キャンペーンオリジナル引越しチェックスクリーンセーバーを差し上げています。\n";
				$strBody .= "下記、URLからダウンロードしてお楽しみください。\n";
				if ($this->m_isMobile == "1")
				{
					$strBody .= "※スクリーンセーバーはパソコン専用となっております。\n";
					$strBody .= "　携帯電話にはインスールできませんのでご注意ください。\n";
				}
				else if ($this->m_isMobile == "2")
				{
					$strBody .= "※スクリーンセーバーはパソコン専用となっております。\n";
					$strBody .= "　iPhoneにはインスールできませんのでご注意ください。\n";
				}
				else if ($this->m_isMobile == "3")
				{
					$strBody .= "※スクリーンセーバーはパソコン専用となっております。\n";
					$strBody .= "　スマートフォンにはインスールできませんのでご注意ください。\n";
				}
				else if ($this->m_isMobile == "4")
				{
					$strBody .= "※スクリーンセーバーはパソコン専用となっております。\n";
					$strBody .= "　Androidにはインスールできませんのでご注意ください。\n";
				}
				$strBody .= "※ダウンロードは3回までとなっておりますのでご注意ください。\n";
				$strBody .= " \n";
				$strBody .= $strApaman48DownloadUrl."\n";
				$strBody .= "\n";
			}
*/
			if ($isExileCampaign) {
				if ($this->m_isMobile == "0") {
					// PC
					$strBody .= "■スクリーンセーバーダウンロード\n";
					$strBody .= "現在、APAMANxEXILEキャンペーン中につき、お問合わせいただいた方全員に\n";
					$strBody .= "もれなくAPAMANxEXILEオリジナルスクリーンセーバーを差し上げています。\n";
					$strBody .= "下記、URLからダウンロードしてお楽しみください。\n";
					$strBody .= "※ダウンロードは3回までとなっておりますのでご注意ください。\n";
				}
				else {
					$strBody .= "■壁紙ダウンロード\n";
					$strBody .= "現在、APAMANxEXILEキャンペーン中につき、お問合わせいただいた方全員に\n";
					$strBody .= "もれなくAPAMANxEXILEオリジナル壁紙を差し上げています。\n";
					$strBody .= "下記、URLからダウンロードしてお楽しみください。\n";
				}
				$strBody .= " \n";
				$strBody .= $strExileDownloadUrl."\n";
				$strBody .= "\n";
			}

			$strBody .= "■ご依頼事項\n";
			$strBody .= "本メール受信後、3営業日を過ぎてもご連絡がない場合は、\n";
			$strBody .= "下記メールアドレスまでご一報いただきますようお願いいたします。\n";
			$strBody .= "その際、お問い合わせ内容を記述いただけると幸いです。\n";
			//$strBody .= "\n";
			//$strBody .= "■年末年始休業期間中のお問い合わせについて\n";
			//$strBody .= "年末年始期休業間中の物件問い合わせメール・リクエストメール・各種問い合わせ等\n";
			//$strBody .= "のご返信につきましては、通常よりお時間を要する場合がございます。予めご了承く\n";
			//$strBody .= "ださいますよう、何卒、よろしくお願い申し上げます。\n";
			//$strBody .= "\n";
			//$strBody .= "期間：2012年12月29日（土）～2013年1月3日（木）\n";
			//$strBody .= "\n";
			//$strBody .= "アパマンショップ各店舗の年末年始の営業時間につきましては、アパマンショップ店\n";
			//$strBody .= "舗検索よりご確認ください。\n";
			//$strBody .= "\n";
			$strBody .= "=====================================================================\n";
			$strBody .= "株式会社アパマンショップネットワーク \n";
			$strBody .= "返信遅滞受付窓口" . Apm_Config_Mail::MAIL_LATE . "\n";
			$strBody .= "=====================================================================\n";

			//--- ユーザ配信メール用ﾒｯｾｰｼﾞ取得(店舗) ---
			//GetMailShopInfoPcForUserは何もしてない
			//$strBody .= $this->GetMailShopInfoPcForUser();

			//===メール送信処理===
			$mail_params = array();
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = array($strMailFrom => "");
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($strMailTo => "");
			if (!Apm_Otheritems::IsNullOrEmpty($strMailReplyTo))
			{
				$mail_params[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = array($strMailReplyTo => "");
			}
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
			$result = $this->sendToiawaseMailJudge("", $strBody, $mail_params, 3); 
// 			__log_error(__FILE__, __LINE__, __METHOD__, "ユーザーメール本文:" . $strBody);
			
			//if ($this->isSendUser())
			//{
			//	//パラメータ設定
			//	$p = array();
			//	$p[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = array($strMailFrom => "");
			//	$p[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($strMailTo => "");
			//	if (!Apm_Otheritems::IsNullOrEmpty($strMailReplyTo))
			//	{
			//		$p[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = array($strMailReplyTo => "");
			//	}
			//	$p[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
			//	$p[Apm_Otheritems::SEND_MAIL_EX_BODY_KEY] = $strBody;
			//	//送信
			//	Apm_Otheritems::SendMailEx($p);
			//}
		}
	}

	/**
	 * メール送信処理(店舗/本部)
	 *
	 * @param string $strBukkenCdComma 物件CD(カンマ(,)区切り)
	 * @param int $intFlag 店舗/本部フラグ(1:店舗  2:本部)
	 * @param boolean $bolAosFlag AOSフラグ
	 * @param string $strShopCd 店舗CD
	 */
	private function SendMailShop($strBukkenCdComma, $intFlag, $bolAosFlag, $strShopCd="")
	{
		//メールタイトル
		$strSubject = "";
		//メール本文
		$strBody = "";
		//メール送信元
		$strMailFrom = "";
		//メール送信先
		$strMailTo = "";
		//メール送信先(CC)
		$strMailCc = array();
		//メールreply-to
		$strMailReplyTo = "";
		//メールヘッダー
		$strMailHeader = array();

		//=======================================================================================
		// メール情報設定処理

		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strShopMail))
		{
			//店舗メールｱﾄﾞﾚｽが設定されていた場合
			$strMailFrom = Apm_Config_Mail::MAIL_NETWORK;
			if ($intFlag == 1)
			{
				//メール送信先が1(=店舗であった場合)
				if (!Apm_Otheritems::IsNullOrEmpty($this->m_strMail))
				{
					//メールｱﾄﾞﾚｽが設定されている場合
					$strMailTo = $this->m_strShopMail;
					$strMailReplyTo = $this->m_strMail;
				}
				else
				{
					$strMailTo = $this->m_strShopMail;
				}
				
				// 特定アドレスのCC追加
				if (!empty($strShopCd)) {
					$cc_list = Apm_Config_Inquiry::$SHOP_MAIL_CC_BUKKEN[$strShopCd];
					if (!empty($cc_list) && is_array($cc_list)) {
						foreach ($cc_list as $ccMail) {
							$strMailCc[$ccMail] = "";
						}
					}
				}
			}
			else
			{
				//メール送信先が店舗でない場合
				//本部のメールアドレス設定
				$strMailTo = Apm_Config_Mail::MAIL_NETWORK;
				$strMailCc[Apm_Config_Mail::MAIL_NETWORK_CALL] = "";
			}

			//--- メール設定情報取得処理(店舗[本部]) ---
//			$this->GetMailInfoShop(&$strSubject, &$strBody, $intFlag);
			$this->GetMailInfoShop($strSubject, $strBody, $intFlag);// 20141211 Update

			//AOSユーザ
			if ($bolAosFlag)
			{
				$strMailHeader = $this->GetMailAosParam($strBukkenCdComma);
			}

			//===メール送信処理===
			$mail_params = array();
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = array($strMailFrom => "");
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($strMailTo => "");
			$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
			if (count($strMailCc) > 0)
			{
				$mail_params[Apm_Otheritems::SEND_MAIL_EX_CC_KEY] = $strMailCc;
			}
			if (!Apm_Otheritems::IsNullOrEmpty($strMailReplyTo))
			{
				$mail_params[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = array($strMailReplyTo => "");
			}
			if (!empty($strMailHeader)) {
				$mail_params[Apm_Otheritems::SEND_MAIL_EX_HEADER_KEY] = $strMailHeader;
			}
			if ($intFlag == 1) {
				// 店舗メール送信
				$result = $this->sendToiawaseMailJudge("", $strBody, $mail_params, 2); 
// 				__log_error(__FILE__, __LINE__, __METHOD__, "店舗メール本文:" . $strBody);
			} else {
				// 本部メール送信
				$result = $this->sendToiawaseMailJudge("", $strBody, $mail_params, 1); 
// 				__log_error(__FILE__, __LINE__, __METHOD__, "本部メール本文:" . $strBody);
			}

			////メール送信フラグ
			//$doSend = false;
			//if ($intFlag == 1)
			//{
			//	if ($this->isSendShop())
			//	{
			//		//AOSユーザ
			//		if ($bolAosFlag)
			//		{
			//			$strMailHeader = $this->GetMailAosParam($strBukkenCdComma);
			//		}
			//		$doSend = true;
			//	}
			//	else
			//	{
			//		if (!Apm_Otheritems::IsNullOrEmpty(strval($this->getReplaceShopMail())))
			//		{
			//			$strMailTo = $this->getReplaceShopMail();
			//			//AOSユーザ
			//			if ($bolAosFlag)
			//			{
			//				$strMailHeader = $this->GetMailAosParam($strBukkenCdComma);
			//			}
			//			$doSend = true;
			//		}
			//	}
			//}
			//else
			//{
			//	if ($this->isSendHonbu())
			//	{
			//		//AOSユーザ
			//		if ($bolAosFlag)
			//		{
			//			$strMailHeader = $this->GetMailAosParam($strBukkenCdComma);
			//		}
			//		$doSend = true;
			//	}
			//	else
			//	{
			//		if (!Apm_Otheritems::IsNullOrEmpty($this->getReplaceHonbuMail()))
			//		{
			//			$strMailTo = $this->getReplaceHonbuMail();
			//			$strMailCc = $this->getReplaceHonbuMail();
			//			//AOSユーザ
			//			if ($bolAosFlag)
			//			{
			//				$strMailHeader = $this->GetMailAosParam($strBukkenCdComma);
			//			}
			//			$doSend = true;
			//		}
			//	}
			//}
			//if ($doSend)
			//{
			//	//パラメータ設定
			//	$p = array();
			//	$p[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = array($strMailFrom => "");
			//	$p[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($strMailTo => "");
			//	$p[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
			//	$p[Apm_Otheritems::SEND_MAIL_EX_BODY_KEY] = $strBody;
			//	if (!Apm_Otheritems::IsNullOrEmpty($strMailCc))
			//	{
			//		$p[Apm_Otheritems::SEND_MAIL_EX_CC_KEY] = array($strMailCc => "");
			//	}
			//	if (!Apm_Otheritems::IsNullOrEmpty($strMailReplyTo))
			//	{
			//		$p[Apm_Otheritems::SEND_MAIL_EX_REPLY_TO_KEY] = array($strMailReplyTo => "");
			//	}
			//	$p[Apm_Otheritems::SEND_MAIL_EX_HEADER_KEY] = $strMailHeader;
			//	//送信
			//	$success = Apm_Otheritems::SendMailEx($p);
			//}
		}
	}

	/**
	 * メール本文用ユーザ情報取得
	 *
	 * @return string メール本文用ユーザ情報
	 */
	private function GetUserInfo()
	{
		$result = "";

		$result .= "<お名前> " . $this->m_strNameSei . "　" . $this->m_strNameMei . "\n";
		$result .= "<お名前カナ> " . $this->m_strNameSeiKana . "　" . $this->m_strNameMeiKana . "\n";//20141211Add
//		$result .= "<ご連絡方法> " . $this->m_strCntctWayStr . "\n"; 20141211 CommentOut

		//メールアドレス
		$result .= "<メールアドレス> " . $this->ConvNull($this->m_strMail, "－") . "\n";

		//電話番号
		$result .= "<電話番号> " . $this->ConvNull($this->m_strTel, "－") . "\n";
// 		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strTel))
// 		{
// 			$result .= "　ご希望時間帯：" . $this->mc_arrNeedTimeKbn[intval($this->m_strNeedTimeKbn)] . "\n";
// 		}
// 20141211 S_CommentOut
// 		//FAX番号
// 		$result .= "<FAX番号> " . $this->ConvNull($this->m_strFax, "－") . "\n";

// 		$result .= "<ご要望> \n";
// 		if (strcmp($this->m_strInquiry5, "1") == 0)
// 		{
// 			$result .= "　クレジットカードで家賃を支払いたい。\n";
// 		}
// 20141211 E_CommentOut

		$result .= "<お問い合わせ内容> \n";
		if (strcmp($this->m_strInquiry1, "1") == 0)
		{
			$result .= "　物件の詳細をもっと知りたい。\n";
		}
		if (strcmp($this->m_strInquiry3, "1") == 0)
		{
			$result .= "　物件が空いているかを確認したい。\n";
		}
		if (strcmp($this->m_strInquiry2, "1") == 0)
		{
			$result .= "　物件を見に行きたい。\n";
		}
		if (strcmp($this->m_strInquiry4, "1") == 0)
		{
			$result .= "　条件に合う他の物件も紹介して欲しい。\n";
		}
		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strComment))
		{
			$result .= "　その他\n";
		}
		$result .= "　" . $this->m_strComment . "\n";
		$result .= "\n";

		return $result;
	}

	/**
	 * メール本文用店舗情報取得
	 * $strSubject、$strBodyを参照渡しし、そこに格納する
	 * @param string $strSubject [out] 件名
	 * @param unknown_type $strBody [out] 本文
	 * @param unknown_type $intFlag [in] 店舗/本部フラグ(1:店舗  2:本部)
	 */
//	private function GetMailInfoShop($strSubject, $strBody, $intFlag)
	private function GetMailInfoShop(&$strSubject, &$strBody, $intFlag)// 20141211 Update
	{
		//strSubject、strBodyは参照渡しすること！！

		$strDispUseKbn;
		$strMobileSiteKbn = "";		// モバイル用サイト区分

		//=======================================================================================
		// 変数初期化処理
		$strSubject = "";
		$strBody = "";

		//--- 利用区分毎の表示 ---
		// 各利用区分で文字列が必要になったら下記の""に追加すること
		switch (strval($this->m_strUseKbn))
		{
			case "0":
				//アパマンショップ
				$strDispUseKbn = "";
				break;
			case "1":
				//地域情報サイト
				$strDispUseKbn = "";
				break;
			case "2":
				//東急リロケーション
				$strDispUseKbn = "";
				break;
			case "3":
				//nifty不動産
				$strDispUseKbn = "＆@nifty不動産";
				break;
			case "4":
				//TAGGY 2013.03.12 Add
				$strDispUseKbn = "＆COSOYO賃貸";
				break;
			default:
				$strDispUseKbn = "";
				break;
		}

		//=======================================================================================
		// ﾒｰﾙﾀｲﾄﾙ

		//--- モバイルサイト区分毎の表示 ---
		if ($this->m_isMobile == "1")
		{
			$strSubject = "□アパマンショップ" . $strDispUseKbn . "・お問い合わせメール";
			switch ($this->ConvNull($this->m_strMobileKbn, ""))
			{
				case '1':
					$strMobileSiteKbn = 'i-mode';
					break;
				case '2':
					$strMobileSiteKbn = 'SoftBank';
					break;
				case '3':
					$strMobileSiteKbn = 'EZweb';
					break;
			}
			if ($strMobileSiteKbn != "")
			{
				$strSubject .= "＜" . $strMobileSiteKbn . "版＞";
			}
		}
		//利用区分によって件名を変更
		else if (strcmp(strval($this->m_strUseKbn), "1") == 0)
		{
			$strSubject = "地域情報サイトからの物件のお問い合わせ";
		}
		else
		{
			$strSubject = "■アパマンショップ" . $strDispUseKbn . "・お問い合わせメール";
		}

		// iPhone、スマホ、Android対応
		if ($this->m_isMobile == "2")
		{
			$strSubject .= "＜iPhone版＞";
		}
		else if ($this->m_isMobile == "3")
		{
			$strSubject .= "＜スマートフォン版＞";
		}
		else if ($this->m_isMobile == "4")
		{
			$strSubject .= "＜Android版＞";
		}

		//送信先ﾒｰﾙｱﾄﾞﾚｽが2(=本部)であった場合
		if ($intFlag == 2)
		{
			$strSubject .= "(" . $this->m_strShopNm . ")";
		}


		//=======================================================================================
		// ﾒｰﾙ本文

		$strBody = "";
		$strBody .= "********************************************************************\n";

		$strBody .= "■アパマンショップ" . $strDispUseKbn . "ホームページ\n";
		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strCampaignTaishoHead))
		{
			$strBody .= $this->m_strCampaignTaishoHead;
		}
		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strPrHead))
		{
			$strBody .= $this->m_strPrHead;
		}

		$strBody .= "お客様より物件のお問い合わせです。至急ご対応をお願いします。\n";
		$strBody .= "********************************************************************\n";
		$strBody .= "\n";
		$strBody .= "【名前】" . $this->m_strNameSei . "　" . $this->m_strNameMei . "\n";
		$strBody .= "【名前カナ】 " . $this->m_strNameSeiKana . "　" . $this->m_strNameMeiKana . "\n";//20141211 Add
//		$strBody .= "【ご連絡方法】 " . $this->m_strCntctWayStr . "\n"; 20141211 CommentOut

		//メールアドレス
		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strMail))
		{
			$strBody .= "【メールアドレス】 " . $this->m_strMail . "\n";
		}
		else
		{
			$strBody .= "【メールアドレス】 －\n";
		}

		//電話番号
		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strTel))
		{
			$strBody .= "【電話番号】 " . $this->m_strTel . "\n";
//			$strBody .= "　ご希望時間帯：" . $this->mc_arrNeedTimeKbn[intval($this->m_strNeedTimeKbn)] . "\n";
		}
		else
		{
			$strBody .= "【電話番号】 －\n";
		}

// 20141211 S_CommentOut
// 		//FAX番号
// 		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strFax))
// 		{
// 			$strBody .= "【FAX番号】 " . $this->m_strFax . "\n";
// 		}
// 		else
// 		{
// 			$strBody .= "【FAX番号】 －\n";
// 		}

// 		//ご要望
// 		$strBody .= "【ご要望】 \n";
// 		if (strcmp($this->m_strInquiry5, "1") == 0)
// 		{
// 			$strBody .= "　クレジットカードで家賃を支払いたい。\n";;
// 		}
// 20141211 E_CommentOut

		//お問い合わせ内容
		$strBody .= "【お問い合わせ内容】 \n";
		if (strcmp($this->m_strInquiry1, "1") == 0)
		{
			$strBody .= "　物件の詳細をもっと知りたい。\n";
		}
		if (strcmp($this->m_strInquiry3, "1") == 0)
		{
			$strBody .= "　物件が空いているかを確認したい。\n";
		}
		if (strcmp($this->m_strInquiry2, "1") == 0)
		{
			$strBody .= "　物件を見に行きたい。\n";
		}
		if (strcmp($this->m_strInquiry4, "1") == 0)
		{
			$strBody .= "　条件に合う他の物件も紹介して欲しい。\n";
		}

		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strComment))
		{
			$strBody .= "　その他\n";
		}
		$strBody .= "　" . $this->m_strComment . "\n";

		//あげちゃいますキャンペーンはDBからデータ取得
		//ユーザとは違い、お宝の表示は行わない
		// 2012/07/31 Delete H.Imamura
		//foreach ($this->m_arrCampaignAgechauAll as $campaignAll)
		//{
		//	if(array_key_exists($campaignAll["M94_CAMPAIGN_CD"], $this->m_arrCampaignAgechau))
		//	{
		//		if($campaignAll["M94_CAMPAIGN_CD"] <> "17"){
		//			$strBody .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　応募する\n";
		//		}
		//		else{
		//			$strBody .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　希望する\n";
		//		}
		//	}
		//	else
		//	{
		//		if($campaignAll["M94_CAMPAIGN_CD"] <> "17"){
		//			$strBody .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　応募しない\n";
		//		}
		//		else{
		//			$strBody .= "＜" . $campaignAll["M94_CAMPAIGN_NAME"] . "＞　希望しない\n";
		//		}
		//	}
		//}

		//送信先ﾒｰﾙｱﾄﾞﾚｽが2(=本部)であった場合
		if ($intFlag == 2)
		{
			$strBody .= "【送信先アドレス】" . $this->m_strShopMail . "\n";
		}

		$strBody .= "\n";
		$strBody .= "=====================================================================\n";
		$strBody .= "\n";
		$strBody .= "■今回のお問い合わせは、合計     " . $this->m_intCntB . "   　件です。\n";
		$strBody .= "　(お客様へ物件名は公開されておりません。)\n";

		$strBody .= $this->m_strBufShop;

		$strBody .= "\n";
		$strBody .= "=====================================================================\n";
		$strBody .= "■ご依頼事項\n";
		$strBody .= "①お客様へ「アパマンショップ○×店です」と、ご連絡ください。\n";
		$strBody .= "②即日のご対応をお願いします。\n";
		$strBody .= "③本メールは送信専用です。お客様の連絡先へご連絡ください。\n";

		if ($this->m_isMobile == "1") {
			if (empty($strMobileSiteKbn)) $strMobileSiteKbn = "i-mode','SoftBank','EZweb";
			$strBody .= "④'".$strMobileSiteKbn."'版は通常よりも文字数の制限があります。その為取得できる情報量に限界があります。ご了承ください。\n";
		}

		$strBody .= "=====================================================================\n";
		$strBody .= "　株式会社アパマンショップネットワーク\n";
		$strBody .= "　※本メールは、お問い合わせメール自動配信システムにより送信されています。\n";
		$strBody .= "=====================================================================\n";
	}

	//============================================================================//
	//  説明
	//    ﾒｰﾙ送信処理(ﾒｰﾙｱﾄﾞﾚｽ未設定時)
	//============================================================================//
	//  引数
	//============================================================================//
	//  戻り値
	//    なし
	//============================================================================//
	/**
	 * メール送信処理(物件に対応した店舗のメールアドレス無し)
	 *
	 */
	private function SendMailNoMail()
	{
		//ﾒｰﾙﾀｲﾄﾙ
		$strSubject = "";
		//ﾒｰﾙ本文
		$strBody = "";
		//ﾒｰﾙ送信元
		$strMailFrom = "";
		//ﾒｰﾙ送信先
		$strMailTo = "";
		//ﾕｰｻﾞ情報
		$strUserInfo = "";

		//=======================================================================================
		// ﾒｰﾙ送信処理

		$strMailFrom = Apm_Config_Mail::MAIL_NETWORK;
		$strMailTo = Apm_Config_Mail::MAIL_NETWORK;

		$strSubject = "問い合わせメールエラー";

		//--- ﾕｰｻﾞ情報取得処理 ---
		$strUserInfo = $this->GetUserInfo();

		$strBody .= "***************************************************************************\n";
		$strBody .= "***　<エラー発生>店舗のアドレスが認識されません。大至急確認してください ***\n";
		$strBody .= "***************************************************************************\n";

		$strBody .= "下記のお問い合わせをご確認ください。\n\n";
		$strBody .= "\n";
		$strBody .= "-----------［お問い合わせ内容］------------\n";
		$strBody .= "\n";
		$strBody .= "<受付日>" . $this->GetTimeStringDisp() . "\n";
		$strBody .= $this->m_strBufUser . "\n";
		$strBody .= $strUserInfo . "\n";
		$strBody .= "\n";

		$strBody .= "-----［お問い合わせ物件取り扱い店舗］------\n";
		$strBody .= "\n";
		$strBody .= "<店舗名>アパマンショップ " . $this->m_strShopNm . "\n";
		$strBody .= "<店舗ＴＥＬ> " . $this->m_strShopTel . "\n";
		$strBody .= "<店舗メール> " . $this->m_strShopMail . "\n";
		$strBody .= "\n";
		$strBody .= "------------------------------------------\n";
		$strBody .= "\n";

		//===メール送信処理===
		$mail_params = array();
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = array($strMailFrom => "");
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($strMailTo => "");
		$mail_params[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
		$result = $this->sendToiawaseMailJudge("", $strBody, $mail_params, 1);
// 		__log_error(__FILE__, __LINE__, __METHOD__, "店舗メールアドレスなしメール（本文）:" . $strBody);
		
		//$doSend = false;
		//if ($this->isSendHonbu())
		//{
		//	$doSend = true;
		//}
		//else
		//{
		//	if (!Apm_Otheritems::IsNullOrEmpty($this->getReplaceHonbuMail()))
		//	{
		//		$strMailTo = $this->getReplaceHonbuMail();
		//		$doSend = true;
		//	}
		//}
		//if ($doSend)
		//{
		//	//パラメータ設定
		//	$p = array();
		//	$p[Apm_Otheritems::SEND_MAIL_EX_FROM_KEY] = array($strMailFrom => "");
		//	$p[Apm_Otheritems::SEND_MAIL_EX_TO_KEY] = array($strMailTo => "");
		//	$p[Apm_Otheritems::SEND_MAIL_EX_SUBJECT_KEY] = $strSubject;
		//	$p[Apm_Otheritems::SEND_MAIL_EX_BODY_KEY] = $strBody;
		//	//送信
		//	$success = Apm_Otheritems::SendMailEx($p);
		//}
	}

	/**
	 * スプリットテストカウント更新処理
	 * Enter description here ...
	 * @param string $flag 表示位置フラグ(0:上、1：下)
	 */
	private function UpdSplitCount($flag)
	{
		$selectList;
		$key;

		if (strcmp($flag, "0") == 0)
		{
			$key = "キャンペーン上表示";
		}
		else
		{
			$key = "キャンペーン下表示";
		}

		//既存仕様通りトランザクション管理はここで行う
		$db = $this->_model->getDbConnection();
		$this->_model->startTransaction($db);

		try
		{
			$selectList = $this->_model->GetSplitCount($key, $db);

			if (count($selectList) > 0)
			{
				if (intval($selectList[0]["T101_COUNT"]) < 999999)
				{
					$this->m_updT101TargetCountCnt += $this->_model->UpdSplitCount($key, $db);
				}
			}
			$this->_model->commitTransaction($db);
			__log_debug(__FILE__, __LINE__, __METHOD__, "コミットしました");
			$db->closeConnection();
		}
		catch (Exception $e)
		{
			$this->_model->rollbackTransaction($db);
			__log_debug(__FILE__, __LINE__, __METHOD__, "ロールバックしました");
			$db->closeConnection();
			throw $e;
		}
	}

	/**
	 * 物件問合せメイン処理
	 *
	 * @throws Exception
	 */
	private function InquiryMain()
	{
		//=====このメソッド内だけで使用する変数=====
		//===検索基本項目===
		//検索区分CD
		$strSrhKbn;
		//OEMCD
		$strOemCd;
		//ｴﾘｱCD
		$strAreaCd;

		//店舗CD
		$strShopCd;
		//店舗CD(退避)
		$strShopCdBk;
		//メールマガジン希望フラグ
		$strMailMgznFlg;
		//連絡手段CD
		$strCntctWayCd;
		//パラメータ選択部屋ID
		$strSelectBukkenCd;
		//ﾏﾄﾘｸｽ検索ﾌﾗｸﾞ
		$strMatrix;
		//物件CD
		$strBukkenCd;
		//物件名
		$strBuildNm;
		//自社建物CD
		$strBuildCdOrg;
		//物件所在地
		$strAddress;
		//貸出区分
		$strKsdsKbn;
		//フリーレント
		$strFreeRent;
		//部屋割
		$strHeyaWari;
		//広告会社CD
		$strPmCmpnyCd;
		//広告会社問合わせCD
		$strPmInqNo;
		//PV増分処理用表示ページジャンル区分
		$intLogGenruKbn;
		//キャンペーンフォーム表示位置フラグ
		$strCampaignLocationFlg;
		//キャンペーン対象文言
		$strCampaignTaisho;
		//お宝キャンペーンフラグ
		$strOtakaraFlg;
		//都道府県CD
		$strPrefCd;
		//ﾏｲﾍﾟｰｼﾞユーザﾌﾗｸﾞ
		$strFavFlg;
		//RSS(ﾃﾞｰﾀ)
		$strDid;
		//RSS(検索ID)
		$strSid;
		//ユーザ動作種別区分
		$strUserActKbn;

		//物件CD(メールヘッダー用)
		$strBukkenCdComma;

		// 問い合わせ物件の合計家賃（CV用）
		$intTotalAmounts = 0;

		//=====モデルインスタンス生成=====
		$this->_model = new Inquiry_Model_Apibukken();

		//希望時間
		//ASPと配列番号が同じになるよう設定
		$this->mc_arrNeedTimeKbn
		= array(
		 0 => "希望なし"
		,1 =>"10時以前"
		,2 =>"10時～12時"
		,3 =>"12時～14時"
		,4 =>"14時～16時"
		,5 =>"16時～18時"
		,6 =>"18時以降"
		);

		//比較用日付(時刻を削っておく)
		$nowdate = strtotime(date('Y-m-d'));

		//===================================================================================
		//= ﾊﾟﾗﾒｰﾀ情報取得処理
		//------モバイル項目------
		$this->m_isMobile  = $this->ConvNull($this->_params["isMobile"], "0");
		$intLogGenruKbn    = $this->ConvNull($this->_params["vintGenruFlg"], "");
		$this->m_strUseKbn = "";
		// iPhone、スマホ、Android用設定
		if ($intLogGenruKbn == '91' || $intLogGenruKbn == '92') {
			$this->m_isMobile = '2';
			$this->m_strUseKbn = "0";
		}
		else if ($intLogGenruKbn == '93' || $intLogGenruKbn == '94') {
			$this->m_isMobile = '4';
			$this->m_strUseKbn = "0";
		}
		else if ($intLogGenruKbn == '95' || $intLogGenruKbn == '96') {
			$this->m_isMobile = '3';
			$this->m_strUseKbn = "0";
		}
		// #377 Nifty対応 2012/06/04 Add H.Imamura
		else if ($intLogGenruKbn == '105') {
			// スマホNifty用設定
			$this->m_isMobile  = '3';
			$this->m_strUseKbn = '3';
		}
		//------ｻｲﾄ基本項目------
		if ($this->m_isMobile == "1") {
			// 携帯Nifty用設定
			if ($intLogGenruKbn == '25' || $intLogGenruKbn == '26' || $intLogGenruKbn == '27') {
				$this->m_strUseKbn = "3";
			} else {
				$this->m_strUseKbn = "0";
			}
		} else {
			if ($this->m_strUseKbn == "") {
				$this->m_strUseKbn = $this->ConvNull($this->_params["UseKbn"], "0");
			}
		}

		//------検索基本項目------
		$strSrhKbn	= $this->_params["SrhKbn"];
		$strOemCd	= $this->_params["OemCd"];
		$strAreaCd	= $this->_params["AreaCd"];
		//------問合せ情報-----
		$strSelectBukkenCd		= $this->ConvNull($this->_params["BukkenCd"], "");
		$this->m_strNameSei		= $this->ConvNull($this->_params["NameSei"], "");
		$this->m_strNameMei		= $this->ConvNull($this->_params["NameMei"], "");
		// 20141211 S_Add
		$this->m_strNameSeiKana	= $this->ConvNull($this->_params["NameSeiKana"], "");
		$this->m_strNameMeiKana	= $this->ConvNull($this->_params["NameMeiKana"], "");
		// 20141211 E_Add
		$this->m_strMail		= $this->ConvNull($this->_params["Mail"], "");
		$strMailMgznFlg			= $this->ConvNull($this->_params["MailMgznFlg"], "");
		$this->m_strTel			= $this->ConvNull($this->_params["Tel"], "");
		$this->m_strNeedTimeKbn	= $this->ConvNull($this->_params["NeedTimeKbn"], "");
		$this->m_strFax			= $this->ConvNull($this->_params["Fax"], "");
		$this->m_strComment		= $this->ConvNull($this->_params["Comment"], "");
		$strMatrix				= $this->ConvNull($this->_params["Matrix"], "");
		$strFavFlg				= $this->ConvNull($this->_params["FavFlg"], "");
		$strDid					= $this->ConvNull($this->_params["did"], "");
		$strSid					= $this->ConvNull($this->_params["sid"], "");
		$strUserActKbn			= trim($this->ConvNull($this->_params["UAKbn"], ""));
		$this->m_strInquiry1	= $this->ConvNull($this->_params["Inquiry1"], "0");
		$this->m_strInquiry2	= $this->ConvNull($this->_params["Inquiry2"], "0");
		$this->m_strInquiry3	= $this->ConvNull($this->_params["Inquiry3"], "0");
		$this->m_strInquiry4	= $this->ConvNull($this->_params["Inquiry4"], "0");

		$this->m_strInquiry5	= $this->ConvNull($this->_params["Inquiry5"], "0");

		$strCampaignLocationFlg = $this->ConvNull($this->_params["CampaignLocationFlg"], "");

		//===================================================================================
		//= 変数初期化処理
		if (Apm_Otheritems::IsNullOrEmpty($strMatrix))
		{
			$strMatrix = "0";
		}
		//@ ﾕｰｻﾞ動作種別区分
		if (strcmp(trim($strFavFlg), "1"))
		{
			$strUserActKbn = "1";
		}
		elseif ((!Apm_Otheritems::IsNullOrEmpty($strDid)) && (!Apm_Otheritems::IsNullOrEmpty($strSid)))
		{
			$strUserActKbn = "2";
		}
		elseif (intval($strMatrix) == 1)
		{
			$strUserActKbn = "3";
		}
		elseif (Apm_Otheritems::IsNullOrEmpty($strUserActKbn))
		{
			$strUserActKbn = "0";
		}

		//ﾒｰﾙﾏｶﾞｼﾞﾝ希望ﾌﾗｸﾞが未設定であった場合
		if (strcmp($strMailMgznFlg, "1") == 0)
		{
			$strMailMgznFlg = "1";
		}
		else
		{
			$strMailMgznFlg = "0";
		}

		//@ 希望連絡手段(表示)
		$this->m_strCntctWayStr = "";

		//@ 希望連絡手段CD
		//メール > TEL > FAXの順に優先
		$strCntctWayCd = "";
		if (!Apm_Otheritems::IsNullOrEmpty($this->m_strMail))
		{
			//希望連絡(ﾒｰﾙ)が設定されている場合
			$this->m_strCntctWayStr = "メール";
			$strCntctWayCd = "010";
		}
		elseif (!Apm_Otheritems::IsNullOrEmpty($this->m_strTel))
		{
			//希望連絡(TEL)が設定されている場合
			$this->m_strCntctWayStr = "ＴＥＬ";
			$strCntctWayCd = "100";
		}
		else
		{
			//希望連絡(FAX)が設定されている場合
			$this->m_strCntctWayStr = "ＦＡＸ";
			$strCntctWayCd = "001";
		}

		//PV増分処理用 GENRU_FLAG
		if (empty($intLogGenruKbn))
		{
			if($strSrhKbn == Apm_Config_Search::SRHKBN_GAKKONAME)
			{
				// キャンパス
				$intLogGenruKbn = 7;
			}
			// モバイル用に分岐（本来は必要ないはずなんだけど。。。）
			else if ($this->m_isMobile == "1")
			{
				$intLogGenruKbn = $this->ConvNull($this->_params["UseKbn"], "1");
			}
			else
			{
				switch (strval($this->m_strUseKbn))
				{
					case "1":
						//地域情報サイト
						$intLogGenruKbn = 13;
						break;
					case "2":
						//東急リロケーション
						$intLogGenruKbn = 15;
						break;
					case "3":
						//nifty
						$intLogGenruKbn = 16;
						break;
					case "4":
						//TAGGY 2013.03.12 Add
						$intLogGenruKbn = 139;
						break;
					default:
						if (Apm_Otheritems::IsNullOrEmpty($strOemCd))
						{
							//通常HP
							$intLogGenruKbn = 0;
						}
						else
						{
							//OEM
							$intLogGenruKbn = 17;
						}
				}
			}
		}
		// モバイル区分の判定
		$this->m_strMobileKbn = "";
		if ($intLogGenruKbn == "1" || $intLogGenruKbn == "10" || $intLogGenruKbn == "25") {
			// i-mode
			$this->m_strMobileKbn = "1";
		} else if ($intLogGenruKbn == "2" || $intLogGenruKbn == "11" || $intLogGenruKbn == "26") {
			// softbank
			$this->m_strMobileKbn = "2";
		} else if ($intLogGenruKbn == "3" || $intLogGenruKbn == "12" || $intLogGenruKbn == "27") {
			// au
			$this->m_strMobileKbn = "3";
		}

		//--- あげちゃいますキャンペーン初期化 ---
		$this->MakeCampaignAgechau($this->_params["CampaignAgechau"]);

		//--- メール判定 ---
		$this->setSendMailFlag($this->m_strMail);

		//--- こだわり関連処理 ---
		if (empty($strAreaCd) && !empty($this->_params['PrefCd']))
		{
			// 物件詳細kodawariData処理変更
		    $loader = new Zend_Application_Module_Autoloader(array(
				'namespace' => 'Search',
				'basePath' => APPLICATION_PATH . '/modules/search',
			));
			$this->_model_area = new Search_Model_Selareasearch();
			$area = $this->_model_area->getAreaCdListByPrefCdKey();
			foreach ($this->_params['PrefCd'] as $key => $val) {
				$strAreaCd_array[$area[$val]] = 1;
			}
			$strAreaCd_key = implode(',',array_keys($strAreaCd_array));
		}
		else
		{
			$strAreaCd_key = $strAreaCd;
		}
//		$this->UpdKodawariCount($strAreaCd);
		$this->UpdKodawariCount($strAreaCd_key);

		//--- DB接続処理 ---
		$db = $this->_model->getDbConnection();

		//トランザクション開始
		$this->_model->startTransaction($db);

		try
		{	
			//問合わせID生成
			$this->m_strToiawaseId = strval($this->GetTimeString()) . strval($this->GetToiawaseSEQ());
			//=====キャンペーンダウンロード管理登録
			foreach($this->m_arrCampaignAgechauAll as $campaignAll){
				if($campaignAll["M94_CAMPAIGN_CD"] == Apm_Config_Inquiry::AKB_CAMPAIGN_CD){
					$this->m_insW25CampaignDownloadMngCnt += $this->_model->InsCampaignDownload($db, $this->m_strToiawaseId, $campaignAll["ACCESS_KEY"]);
					
				}
				if($campaignAll["M94_CAMPAIGN_CD"] == Apm_Config_Inquiry::EXILE_CAMPAIGN_CD){
					$this->m_insW25CampaignDownloadMngCnt += $this->_model->InsExileCampaignDownload($db, $this->m_strToiawaseId, $this->m_isMobile, $campaignAll["ACCESS_KEY"]);
					
				}
			}
			
			//========================================ログ情報格納========================================
			//=====問合せユーザ情報格納=====
			if ($this->isLogIns())
			{
				$p = array();
				$p["strToiawaseId"] = $this->m_strToiawaseId;
				$p["intLogGenruKbn"] = $intLogGenruKbn;
				$p["strNameSei"] = $this->m_strNameSei;
				$p["strNameMei"] = $this->m_strNameMei;
				// 20141211 S_Add
				$p["strNameSeiKana"] = $this->m_strNameSeiKana;
				$p["strNameMeiKana"] = $this->m_strNameMeiKana;
				// 20141211 E_Add
				$p["strCntctWayCd"] = $strCntctWayCd;
				$p["strMail"] = $this->m_strMail;
				$p["strTel"] = $this->m_strTel;
				$p["strFax"] = $this->m_strFax;
				$p["strNeedTimeKbn"] = $this->m_strNeedTimeKbn;
				$p["strComment"] = $this->m_strComment;
				$p["strMailMgznFlg"] = $strMailMgznFlg;
				$p["strSrhKbn"] = $strSrhKbn;
				$p["strUserActKbn"] = $strUserActKbn;
				$p["strOemCd"] = $strOemCd;
				//問合せ内容チェックボックスは１０桁の0/1フラグ
				$p["strInquiry"]
				= $this->m_strInquiry1
				. $this->m_strInquiry2
				. "0"
				. $this->m_strInquiry3
				. $this->m_strInquiry4
				. "00"
				. $this->m_strInquiry5
				. "00";
				//あげちゃいますキャンペーンの既存の登録は全てNULLとする
				$p["strCampaign1"] = "NULL";
				$p["strCampaign2"] = "NULL";
				$p["strCampaign3"] = "NULL";
				$p["strCampaign4"] = "NULL";
				
				//LP経由判定
				$p["LpCampaignCd"] = $this->_params['LpCampaignCd'];
				$p["LpRootCd"]     = $this->_params['LpRootCd'];
				
				$this->m_insW25ToiawaseUserLogCnt += $this->_model->InsInqUserLog($p, $db);

				// 問い合わせログ格納処理（モバイルのみ）：strShudanが存在する場合のみ含めるように暫定対応
				if ($this->m_isMobile != "0"
					&& isset($this->_params['strShudan']) && $this->ConvNull($this->_params['strShudan'], "") != "") {

					$loader = new Zend_Application_Module_Autoloader(array(
						'namespace' => 'Mobileapi',
						'basePath' => APPLICATION_PATH . '/modules/mobileapi',
					));
					$model_mobileapi = new Mobileapi_Model_Bukkenrequest();
					$api_params = array();
					$api_params['strToiawaseID']        = $this->m_strToiawaseId;
					$api_params['strKensakuFlag']       = "0";
					$api_params['vintGenruFlg']         = $intLogGenruKbn;
					$api_params['weekday']              = date('w')+1;
					$api_params['strName']              = trim(trim($this->m_strNameSei) . "　" . trim($this->m_strNameMei), "　");
					$api_params['strNameKana']          = trim(trim($this->m_strNameSeiKana) . "　" . trim($this->m_strNameMeiKana), "　");// 20141211 Add
					$api_params['strJob']               = $this->_params['strJob'];
					$api_params['str_In_Todoufuken_Cd'] = $this->_params['str_In_Todoufuken_Cd'];
					$api_params['strMail']              = $this->m_strMail;
					$api_params['strTel']               = $this->m_strTel;
					$api_params['strShudan']            = $this->_params['strShudan'];
					$result = $model_mobileapi->insToiawaseLog($db, $api_params);
					$this->m_insW25ToiawaseLogCnt += $result['count'];
				}
			}

			//=====キャンペーン表示上下カウント=====
			if (!Apm_Otheritems::IsNullOrEmpty($strCampaignLocationFlg))
			{
				//こいつはトランザクション管理されてない
				$this->UpdSplitCount($strCampaignLocationFlg);
			}

			//=====キャンペーン反響テーブルカウント(あげちゃいます)=====
			foreach ($this->m_arrCampaignAgechau as $key => $value)
			{
				$this->UpdLettersCampaign($db, $value["M94_CAMPAIGN_KBN"], $value["M94_CAMPAIGN_CD"], 2);
			}

			//========================================メール送信、問合せ店舗ログ登録処理========================================
			//問合せ物件一覧取得
			$bukkenList = $this->_model->GetInqBukkenList($strSelectBukkenCd);
			// CV用に格納
			$this->_data['CV_ToiawaseId'] = $this->m_strToiawaseId;
			$this->_data['CV_bukken'] = $bukkenList;

			if (count($bukkenList) > 0)
			{
				//あげちゃいますキャンペーンはDBからデータ取得
				//TODO:既存のものは文章の前に☆や□などをつけてるが、判別不能の為付けてません
				//TODO:既存の場合はお宝キャンペーンの場合とか色々切り分けていますが、仕様不明の為特に切り分けていません
				foreach ($this->m_arrCampaignAgechau as $campaign)
				{
					$this->m_strCampaignTaishoHead .= "　　　◆◆◆" . $campaign["M94_CAMPAIGN_NAME"] . "◆◆◆に、応募\n";
				}
					
				for ($i = 0; $i < count($bukkenList); $i++)
				{
					$bukkenInfo = $bukkenList[$i];
					$strShopCd = $this->ConvNull($bukkenInfo["T03_TENPO_CD"], "");

					//=====初回もしくは、店舗が変わった場合=====
					if (($i == 0) || (strcmp($strShopCd, $strShopCdBk) != 0))
					{
						//===初回でない場合、今までの店舗の情報を処理する===
						if ($i != 0)
						{
							//--- ﾒｰﾙ送信処理(Main) ---
							$this->SendMailMain($strBukkenCdComma, $strShopCdBk);
							//--- 問い合わせ店舗情報格納処理 ---
							$this->InsInqShopLog($db, "", $strShopCdBk, $intLogGenruKbn);
						}
						//===色々初期化===
						$this->m_intCntB = 0;
						$this->m_strBufShop = "";
						$this->m_strBufUser = "";
						$this->m_strPrHead = "";
						$this->m_strWebcallingNo = "";
						$strBukkenCdComma = "";
						$strOtakaraFlg = "0";

						//店舗情報の取得
						$this->m_strShopNm = $this->ConvNull($bukkenInfo["M05_TENPO_NAME"], "");
						$this->m_strShopMail = $this->ConvNull($bukkenInfo["M05_TENPO_MAIL"], "");
						$this->m_strShopTel = $this->ConvNull($bukkenInfo["M05_TENPO_TEL01"], "");

						//店舗コードを取っておく
						$strShopCdBk = $strShopCd;
					}

					//データ取得
					$strBukkenCd = $this->ConvNull($bukkenInfo["T03_ORIGINAL_HEYA_CD01"], "");
					$strBuildNm = $this->ConvNull($bukkenInfo["T03_TATEMONO_NAME"], "");
					$strBuildCdOrg = $this->ConvNull($bukkenInfo["T03_ORIGINAL_TATEMONO_CD01"], "");
					$strAddress = $this->ConvNull($bukkenInfo["T03_JYUUSHO_TEXT"], "");
					$strKsdsKbn = $this->ConvNull($bukkenInfo["T03_KASHIDASHI_KUBUN"], "");
					$strFreeRent = $this->ConvNull($bukkenInfo["T03_FREERENT_FLAG"], "");
					$strHeyaWari = $this->ConvNull($bukkenInfo["T03_HEYAWARI_FLAG"], "");
					$strPmCmpnyCd = $this->ConvNull($bukkenInfo["T03_KOUKOKU_KAISHA_CD"], "");
					$strPmInqNo = $this->ConvNull($bukkenInfo["T03_KOUKOKU_TOIAWASE_NO"], "");
					$strPrefCd = $this->ConvNull($bukkenInfo["T03_TODOUFUKEN_CD"], "");
					// CV用に家賃合計
					$intTotalAmounts += intval($this->ConvNum($bukkenInfo["T03_YACHIN"],0));

					//物件件数インクリメント
					$this->m_intCntB += 1;

					//=====キャンペーン対象判定=====
					$strCampaignTaisho = "";

					//=====部屋別キャンペーンの反響情報更新=====
					$this->m_arrCampaignHeyaList = array();
					$this->UpdHeyaLettersCampaign($db, $bukkenInfo["T03_HEYA_CD"]);

					//キャンペーン対象物件
					foreach ($this->m_arrCampaignHeyaList as $campaign)
					{
						if (empty($strCampaignTaisho)) $strCampaignTaisho = "          ";
						if ($campaign["M94_CAMPAIGN_CD"] == Apm_Config_Search::PONTA_CAMPAIGN_CD) {
							// ポンタ部屋の場合
							if ($campaign['T03_PONTA_TINRYO_FLG'] == '1') {
								// 月額家賃ポイント
								$strCampaignTaisho .= "＜ポンタ月額家賃：" . $campaign["T03_PONTA_TINRYO_POINT"] . "ポイント＞";
							}
							if ($campaign['T03_PONTA_SEIYAKU_FLG'] == '1') {
								// 特別成約ポイント
								$strCampaignTaisho .= "＜ポンタ特別成約：" . $campaign["T03_PONTA_SEIYAKU_POINT"] . "ポイント＞";
							}
						} else {
							$strCampaignTaisho .= "＜" . $campaign["M94_CAMPAIGN_NAME"] . "対象物件＞";
						}
						// タイトルは重複させない
						if (!array_key_exists($campaign["M94_CAMPAIGN_CD"], $this->m_arrCampaignAgechau) && strpos($this->m_strPrHead, $campaign["M94_CAMPAIGN_NAME"]) === false) {
							$this->m_strPrHead .= "　　　★★★" . $campaign["M94_CAMPAIGN_NAME"] . "からの反響です★★★\n";
						}
					}
//					//TODO:とりあえずのこしてますが、これもキャンペーンマスタ化？
//					//地デジあるある
//					if ((strcmp($bukkenInfo["T03_CAMPAIGN_FLAG"], "1") == 0) && ($nowdate <= strtotime("2011/07/25")))
//					{
//						$strCampaignTaisho = "          ＜地デジキャンペーン対象物件＞";
//						$this->m_strPrHead .= "      ★★★地デジキャンペーンからの反響です★★★\n";
//					}

					//訳あり物件
					if (
					((strpos($bukkenInfo["T03_PR01"], "①") !== false) || (strpos($bukkenInfo["T03_PR02"], "①") !== false))
					|| ((strpos($bukkenInfo["T03_PR01"], "②") !== false) || (strpos($bukkenInfo["T03_PR02"], "②") !== false))
					|| ((strpos($bukkenInfo["T03_PR01"], "③") !== false) || (strpos($bukkenInfo["T03_PR02"], "③") !== false))
					|| ((strpos($bukkenInfo["T03_PR01"], "④") !== false) || (strpos($bukkenInfo["T03_PR02"], "④") !== false))
					|| ((strpos($bukkenInfo["T03_PR01"], "⑤") !== false) || (strpos($bukkenInfo["T03_PR02"], "⑤") !== false))
					|| ((strpos($bukkenInfo["T03_PR01"], "⑥") !== false) || (strpos($bukkenInfo["T03_PR02"], "⑥") !== false))
					)
					{
						if (!Apm_Otheritems::IsNullOrEmpty($this->m_strPrHead))
						{
							$this->m_strPrHead .= "　　　　　　　　　　　　　　　　　　　　　";
						}
						$this->m_strPrHead .= "　　　●◎●訳あり物件特集からの反響です●◎●\n";
					}

					//===無料電話番号取得===
					$callData = Apm_ShopUtil::getCallingData($bukkenInfo, Apm_Config_Shop::FREE_CONNECTION_NO_1);
					if ($callData['IS_FREE_CALL']) {
						$this->m_strWebcallingNo = Apm_Bukkenitems::GetBukkenWebCallingNo($bukkenInfo, $this->m_isMobile, $db, $this->_params['LpCampaignCd']);
					}

					//=====メール用文書作成=====
					//===メール用文書作成(ユーザ)===
					if (strcmp($strKsdsKbn, "1") == 0)
					{
						$this->m_strBufUser .= "<物件番号>" . $strBukkenCd . "-W\n";
					}
					else
					{
						$this->m_strBufUser .= "<物件番号>" . $strBukkenCd . "\n";
					}

					//===メール用文書作成(店舗)===
					if (!Apm_Otheritems::IsNullOrEmpty($strBukkenCdComma))
					{
						$strBukkenCdComma .= ",";
					}
					$strBukkenCdComma .= $strBukkenCd;
					$this->m_strBufShop .= "\n";
					$this->m_strBufShop .= "〔物件番号〕" . $strBuildCdOrg . $strCampaignTaisho . "\n";
					$this->m_strBufShop .= "〔物 件 名〕" . $strBuildNm . "\n";
					$this->m_strBufShop .= "〔物件住所〕" . $strAddress . "\n";

					if (strcmp($strKsdsKbn, "1") == 0)
					{
						$this->m_strBufShop .= "〔問合番号〕" . $strBukkenCd . "-W\n";
					}
					else
					{
						$this->m_strBufShop .= "〔問合番号〕" . $strBukkenCd . "\n";
					}

					if (strcmp($strFreeRent, "1") == 0)
					{
						$this->m_strBufShop .= "「フリーレント」";
					}
					if (strcmp($strHeyaWari, "1") == 0)
					{
						$this->m_strBufShop .= "「部屋割」";
					}
					if ((strcmp($strFreeRent, "1") == 0) || (strcmp($strHeyaWari, "1") == 0))
					{
						$this->m_strBufShop .= "設定物件" . "\n";
					}
					//TODO:物件明細へのジャンプ用URLに変更する必要があります
					$this->m_strBufShop .= Apm_Config_Inquiry::URL_COM . "search/dtljump?t=" . $strShopCd . "&o=" . $strBukkenCd . "&p=1" . "&k=" . $strKsdsKbn . "\n";

					//=====ログ情報保存=====
					if ($this->isLogIns())
					{

						//--- 問い合わせ物件情報格納処理 ---
						$this->m_insW26ToiawaseBukkenCnt += $this->_model->InsInqBukkenLog($this->m_strToiawaseId, $bukkenInfo, $strOtakaraFlg, $db);

						//管理会社が設定されている場合
						if ((!Apm_Otheritems::IsNullOrEmpty($strPmCmpnyCd)) && (!$this->isAosShop($strShopCd)))
						{
							//--- 管理会社物件ﾛｸﾞ情報挿入処理 ---
							$p = array();
							$p['strToiawaseCd'] = $strPmInqNo;
							$p['strKaishaCd'] = $strPmCmpnyCd;
							$p['strPrefCd'] = $strPrefCd;
							$p['strTenpoCd'] = $strShopCd;
							$p['intKoumokuFlg'] = 4;
							if ($this->m_isMobile == "0")
							{
								$p['intSiteFlg'] = "1";
							}
							else
							{
								$p['intSiteFlg'] = "2";
							}
							$this->m_insW03BukkenAccessLogCnt += $this->_model->InsKanriBkknLog($p, $db);
						}
						//--- 問い合わせ店舗情報格納処理 ---
						$this->InsInqShopLog($db, $strBukkenCd, $strShopCd, $intLogGenruKbn);
					}
				}
				// CV用合計家賃格納
				$this->_data['CV_TotalAmounts'] = $intTotalAmounts;

				//--- ﾒｰﾙ送信処理(Main) ---
				$this->SendMailMain($strBukkenCdComma, $strShopCdBk);
				//--- 問い合わせ店舗情報格納処理 ---
				$this->InsInqShopLog($db, "", $strShopCdBk, $intLogGenruKbn);
			}

			__log_debug(__FILE__, __LINE__, __METHOD__, "コミットします");
			$this->_model->commitTransaction($db);
			$db->closeConnection();
		}
		catch (Exception $e)
		{
			__log_debug(__FILE__, __LINE__, __METHOD__, "ロールバックします");
			$this->_model->rollbackTransaction($db);
			$db->closeConnection();
			throw $e;
		}
	}

	/**
	 * あげちゃいますキャンペーン情報を作成する
	 * 下記変数の初期化
	 *   $m_arrCampaignAgechauAll
	 *   $m_arrCampaignAgechau
	 *   $m_arrCampaignAgechauTakara
	 */
	private function MakeCampaignAgechau($strCampaignParam)
	{
		//一旦初期化
		$this->m_arrCampaignAgechauAll = array();
		$this->m_arrCampaignAgechau = array();
		$this->m_arrCampaignAgechauTakara = array();
		$this->m_arrCampaignHeya = array();

		$arrSelectCampaign;
		$arrCampaignInfo;

		$arrTakara;

		$campaign;
		$takara;

		//全部取得
		$this->m_arrCampaignAgechauAll = $this->_model->GetCampaignEx("2, 4", 0, $this->m_isMobile);
		//$this->m_arrCampaignAgechauAll = $this->_model->GetCampaign("2, 4", null, $this->m_isMobile);

		if (!Apm_Otheritems::IsNullOrEmpty($strCampaignParam))
		{
			//キャンペーン毎に分割
			if (strpos($strCampaignParam, self::DELIM_CAMPAIGN) === false)
			{
				$arrSelectCampaign = array(str_replace(" ", "", $strCampaignParam));
			}
			else
			{
				$arrSelectCampaign = split(self::DELIM_CAMPAIGN, str_replace(" ", "", $strCampaignParam));
			}

			for ($i = 0; $i < count($arrSelectCampaign); $i++)
			{
				$arrTakara = array();
				$campaign = null;
				$takara = null;

				//キャンペーンとお宝を分割
				if (strpos($arrSelectCampaign[$i], self::DELIM_OTAKARA) === false)
				{
					$arrCampaignInfo = array(str_replace(" ", "", $arrSelectCampaign[$i]));
				}
				else
				{
					$arrCampaignInfo = split(self::DELIM_OTAKARA, str_replace(" ", "", $arrSelectCampaign[$i]));
				}

				for ($j = 0; $j < count($arrCampaignInfo); $j++)
				{
					if ($j == 0)
					{
						//先頭はキャンペーンコード
						//キャンペーン情報取得
						$campaign = $this->_model->GetCampaign("2, 4", $arrCampaignInfo[$j], $this->m_isMobile);
						if (count($campaign) == 0)
						{
							//万一取得できなかった場合はnullにして抜ける
							__log_debug(__FILE__, __LINE__, __METHOD__, $arrCampaignInfo[$j] . "のキャンペーンコードはありません");
							$campaign = null;
							break;
						}
					}
					else
					{
						//２番目以降はお宝コード
						$takara = $this->_model->GetCampaignTakara($campaign[0]["M94_CAMPAIGN_CD"], $arrCampaignInfo[$j]);
						if (count($takara) > 0)
						{
							//万一取得できなかった場合はnullにして抜ける
							__log_debug(__FILE__, __LINE__, __METHOD__, $campaign[0]["M94_CAMPAIGN_CD"] . "のキャンペーンコードの" . $arrCampaignInfo[$j] . "の宝はありません");
							$campaign = null;
							break;
						}
						$arrTakara[$arrCampaignInfo[$j]] = $takara[0];
					}
				}
				if (!is_null($campaign))
				{
					$this->m_arrCampaignAgechau[$campaign[0]["M94_CAMPAIGN_CD"]] = $campaign[0];
					$this->m_arrCampaignAgechauTakara[$campaign[0]["M94_CAMPAIGN_CD"]] = $arrTakara;
				}
			}
		}
	}

	/**
	 * 部屋別キャンペーン情報更新
	 *
	 * @param connection $db DBコネクション
	 * @param int $intHeyaCd 部屋コード
	 */
	private function UpdHeyaLettersCampaign($db, $intHeyaCd)
	{
		$arrWebHeyaCampaign;

		//TODO:最終的には取得もトランザクション管理する予定
		$arrWebHeyaCampaign = $this->_model->GetWebHeyaCampaign($intHeyaCd, $this->m_isMobile);

		foreach ($arrWebHeyaCampaign as $value) {
			// 他の部屋で登録している場合を除く -> 解除
			//if (!array_key_exists($value["M94_CAMPAIGN_CD"], $this->m_arrCampaignHeya)) {
				$arrBukken = array(
						 'tenpoCd'			=> $value['T03_TENPO_CD']
						,'orgHeyaCd'		=> $value['T03_ORIGINAL_HEYA_CD01']
						,'kashidashiKbn'	=> $value['T03_KASHIDASHI_KUBUN']
					);
				$this->UpdLettersCampaignItem($db, $value["M94_CAMPAIGN_KBN"], $value["M94_CAMPAIGN_CD"],$value["T03_ITEM_CD"], 1, $arrBukken);
				$this->m_arrCampaignHeya[$value["M94_CAMPAIGN_CD"]] = '1';
			//}
			// メール用に保存
			$this->m_arrCampaignHeyaList[$value["M94_CAMPAIGN_CD"]] = $value;
		}
	}

	/**
	 * キャンペーン反響数テーブル更新
	 *
	 * @param connection $db DBコネクション
	 * @param int $intCampaignKbn キャンペーン区分
	 * @param int $intCampaignCd キャンペーンコード
	 * @param int $intToiawaseKbn 問い合わせ区分
	 * @param array $arrBukken 物件データ（部屋付きキャンペーンのみ）
	 */
	private function UpdLettersCampaign($db, $intCampaignKbn, $intCampaignCd, $intToiawaseKbn, $arrBukken = array())
	{
		$arrLetterCampaign;

		$ymd = date("Ymd");
		$device = $this->m_isMobile;
		//$device = $this->GetDeviceKbn();

		$db_2 = $this->_model->getDbConnection();
		$this->_model->startTransaction($db_2);

		try
		{
			$arrLetterCampaign = $this->_model->GetLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn);

			if (count($arrLetterCampaign) == 0)
			{
				$this->m_insupdW75LettersCampaignCnt += $this->_model->InsLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn);
			}
			else
			{
				$this->m_insupdW75LettersCampaignCnt += $this->_model->UpdLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn);
			}

			// キャンペーン応募状況を登録
			$this->m_insW76ApplyCampaignCnt += $this->_model->InsApplyCampaign($db_2, $intCampaignCd, $intToiawaseKbn, $this->m_strToiawaseId, $intCampaignKbn, $device, $arrBukken);

			$this->_model->commitTransaction($db_2);
			__log_debug(__FILE__, __LINE__, __METHOD__, "コミットしました");
			$db_2->closeConnection();
		}
		catch (Exception $e)
		{
			$this->_model->rollbackTransaction($db_2);
			__log_debug(__FILE__, __LINE__, __METHOD__, "ロールバックしました");
			$db_2->closeConnection();
			throw $e;
		}


	}

	/**
	 * キャンペーン反響数テーブル更新
	 *
	 * @param connection $db DBコネクション
	 * @param int $intCampaignKbn キャンペーン区分
	 * @param int $intCampaignCd キャンペーンコード
	 * @param int $intItemCd キャンペーンアイテムコード
	 * @param int $intToiawaseKbn 問い合わせ区分
	 * @param array $arrBukken 物件データ（部屋付きキャンペーンのみ）
	 */
	private function UpdLettersCampaignItem($db, $intCampaignKbn, $intCampaignCd, $intItemCd, $intToiawaseKbn, $arrBukken = array())
	{
		$arrLetterCampaign;

		$ymd = date("Ymd");
		$device = $this->m_isMobile;
		//$device = $this->GetDeviceKbn();

		$db_2 = $this->_model->getDbConnection();
		$this->_model->startTransaction($db_2);

		try
		{
			$arrLetterCampaign = $this->_model->GetLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn);

			if (count($arrLetterCampaign) == 0)
			{
				$this->m_insupdW75LettersCampaignCnt += $this->_model->InsLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn);
			}
			else
			{
				$this->m_insupdW75LettersCampaignCnt += $this->_model->UpdLettersCampaign($db_2, $intCampaignKbn, $ymd, $intCampaignCd, $device, $intToiawaseKbn);
			}

			// キャンペーン応募状況を登録
			$this->m_insW76ApplyCampaignCnt += $this->_model->InsApplyCampaignItem($db_2, $intCampaignCd, $intItemCd, $intToiawaseKbn, $this->m_strToiawaseId, $intCampaignKbn, $device, $arrBukken);
			
			$this->_model->commitTransaction($db_2);
			__log_debug(__FILE__, __LINE__, __METHOD__, "コミットしました");
			$db_2->closeConnection();
		}
		catch (Exception $e)
		{
			$this->_model->rollbackTransaction($db_2);
			__log_debug(__FILE__, __LINE__, __METHOD__, "ロールバックしました");
			$db_2->closeConnection();
			throw $e;
		}


	}	
	
	/**
	 * デバイス区分を取得する
	 *
	 * @return int デバイス区分
	 */
	private function GetDeviceKbn()
	{
		$isMobile = $this->getRequest()->getParam('isMobile');
		if (!empty($isMobile) && $isMobile == 1){
			return 1;
		}
		return 0;
	}

	//TODO:ここ以降はモデルでも使ってるので共通化するべき。というかこもんは全部
	/**
	 * フィールド値変換用スクリプト
	 *
	 * @param object $value 値
	 * @param object $nullValue 値がnullの場合に置き換える値
	 */
	private function ConvNull($value, $nullValue)
	{
		$work = $value;
		if (Apm_Otheritems::IsNullOrEmpty($work))
		{
			$work = $nullValue;
		}
		return $work;
	}

	/**
	 * 年月文字列取得
	 * 数値でない場合はnullValueが返る
	 *
	 * @param unknown_type $value 値
	 * @param unknown_type $nullValue nullの場合
	 */
	private function ConvNum($value, $nullValue)
	{
		$result = $nullValue;

		//対象値がNullでない場合
		if (!Apm_Otheritems::IsNullOrEmpty($value))
		{
			if (ctype_digit($value))
			{
				$result = $value;
			}
		}
		return $result;
	}
}
?>
